package cn.korilweb.demodictionary.dao;

import cn.korilweb.demodictionary.entity.bo.DictInfoBO;
import cn.korilweb.demodictionary.entity.co.DictParentChildCO;
import cn.korilweb.demodictionary.entity.dto.DictDTO;
import cn.korilweb.demodictionary.entity.po.DictInfoPO;
import cn.korilweb.demodictionary.entity.po.DictTypePO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author DJH
 * @date 2021-10-26 21:28:45
 */
@Mapper
public interface DictDao {

    List<DictParentChildCO> getDictParentChildCOList();

    List<DictInfoBO> getDictInfoBOList();

    DictTypePO getDictTypeById(@Param("typeId") Integer typeId);

    void addDictInfo(@Param("info") DictInfoPO dictInfoPO);

    void updateDict(@Param("infoId") Integer infoId, @Param("info") DictDTO dictDTO);

    int getSameLevelCnt(@Param("infoId") int infoId);

    int getOrderNoById(@Param("infoId") int infoId);

    int getParentInfoId(@Param("infoId") int infoId);

    DictInfoBO getInfo(@Param("parentInfoId") int parentInfoId, @Param("orderNo") int orderNo);

    void updateOrder(@Param("infoId") int infoId, @Param("orderNo") int orderNo);

    void addDictType(@Param("type") DictTypePO dictTypePO);

    void updateStatus(@Param("infoId") Integer infoId, @Param("statusValue") Integer statusValue);
}
